home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / amiexpress / source / utils / convmsg / convmsg.c next >
Encoding:
C/C++ Source or Header  |  1992-12-26  |  1.7 KB  |  89 lines

  1. #include <exec/exec.h>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. void sr(char *s);
  6.  
  7. struct OldMailHeader {
  8.     char    Status[1];
  9.     long    MsgNumb;
  10.     char    ToName[31],
  11.         FromName[31],
  12.         Subject[31];
  13.     long    MsgDate,
  14.         Recv;
  15.     char Pad;
  16.     };
  17. struct MailHeader {
  18.     char    Status[1];
  19.     long    MsgNumb;
  20.      long ActualMsgNumb;
  21.     char    ToName[31],
  22.         FromName[31],
  23.         Subject[31];
  24.      char ToNet[8],FromNet[8];
  25.     long    MsgDate,
  26.         Recv;
  27.      long threaded;
  28.     char Pad;
  29.     };
  30.  
  31. struct OldMailHeader OH;
  32. struct MailHeader MH;
  33. char oldname[200],newname[200];
  34. main(int argc,char *argv[])
  35. {
  36.   FILE *fi,*fo;
  37.   if(argc!=2)
  38.   {
  39.     printf("ConvMsg version 1.0,  written by Joseph Hodge\n");
  40.     printf("usage: ConvMsg <headername>\n");
  41.     printf("   ie: ConvMsg bbs:confs/pd/msgbase/headerfile\n");
  42.     printf("\n");
  43.     exit(0);
  44.   }
  45.   strcpy(oldname,argv[1]);
  46.   strcpy(newname,argv[1]);
  47.   sr(oldname);
  48.   sr(newname);
  49.   strcat(oldname,".old");
  50.   DeleteFile(oldname);
  51.   if(Rename(newname,oldname))
  52.   {
  53.      fi=fopen(oldname,"rb");
  54.      fo=fopen(newname,"wb");
  55.      while(fread((APTR)&OH,sizeof(struct OldMailHeader),1,fi)!=NULL)
  56.      {
  57.        strcpy(MH.ToName,OH.ToName);
  58.        strcpy(MH.FromName,OH.FromName);
  59.        strcpy(MH.Subject,OH.Subject);
  60.        MH.MsgNumb=OH.MsgNumb;
  61.        MH.Status[0]=OH.Status[0];
  62.        strcpy(MH.ToNet,"");
  63.        strcpy(MH.FromNet,"");
  64.        MH.MsgDate=OH.MsgDate;
  65.        MH.Recv=OH.Recv;
  66.        MH.threaded=0L;
  67.        MH.Pad=OH.Pad;
  68.        MH.ActualMsgNumb=OH.MsgNumb;
  69.        fwrite((APTR)&MH,sizeof(struct MailHeader),1,fo);
  70.      }
  71.      fclose(fi);
  72.      fclose(fo);
  73.   }
  74.   else
  75.   {
  76.     printf("Error, cannot locate msgbase\n");
  77.   }
  78.   exit(0);
  79. }
  80. void sr(char *s)
  81. {
  82.   register int i;
  83.   i=strlen(s)-1;
  84.   while(i>-1)
  85.   {
  86.     if(*(s+i)<=32) *(s+i)='\0'; else break;
  87.     i--;
  88.   }
  89. }